\chapter{Bilan}

\section{Technique}

Ce projet nous aura permis d'étoffer nos compétences dans plusieurs domaines spécifiques :
\begin{itemize}
	\item L'analyse : nous avons découvert la modélisation d'un syntaxe et d'instruction récurrente d'un programme via la conception des différents programmes de Conway.
	\item Le développement C : nous avons pu conjuguer nos compétences en C avec l'utilisation de yylex() et découvert les mécanismes de l'analyse syntaxique.
	\item La programmation TCL : déjà vu au cours du projet système du premier semestre de M1, les connaissances en TCL ont encore été approfondies avec la mise en place de pipe, d'une interface plus complexe, de traitements élaborés de chaines, etc...
\end{itemize}

\section{Humain}

De plus, nous avons enrichie d'autres compétences fondamentales qui sont :
\begin{itemize}
	\item L'organisation : les différents modules du programme (intepretation de pcod, génération de pcod, interface) pouvait être développées en parrallèle, mais devait être réunies à la fin du projet. Nous avons donc appris à répartir au mieux les différentes tâches, pour que l'avancement du projet se face dans des conditions optimales. L'usage d'un serveur SVN nous a été plus que salutaire.
	\item La communication : Idem que précédemment, il a fallu communiquer activement pour se tenir au courant de l'avancement des activités et pour pouvoir également intervenir sur des points défectueux.
\end{itemize}

\section{Résultats}

 \subsection{L’interface TCL}

L'interface qui a été conçue respecte la globalité des exigences du sujet, à savoir :

\begin{itemize}
  \item La gestion d’un programme P via un menu: modification, enregistrement...
  \item La compilation et la génération de pcod avec affichage d'erreurs;
  \item Des fonctions de traitement des instructions pcod : points d'arrêts, pas à pas, pile d'éxécution...
  \item La communication avec l'interpréteur est également disponible
\end{itemize}

\subsection{L'interpretation du pcod}

Les exigences de départ ont été respectées :
\begin{itemize}
  \item Les déclarations de variables simples, types simples, constantes et leurs détections dans les instructions;
  \item Les affectations des valeurs aux variables et pour tous les types prédéfinis;
  \item Toutes les opérations arithmétiques;
  \item Les conditions et boucles : if et while;
  \item L'appel à des procédures

\end{itemize}